;----------------------------------------------------------------------- ; FILE: oemsetup.inf ; Version: 5.0 ; PURPOSE: GUI setup file for Adaptec SCSI Host Adapters for Windows NT ; Changes: ; 9/1/95 Make changes in registry for adding APA-1460 into PCMCIA ; database. ; 9/18/95 Make Scsidisk a system device if it is disabled in the ; registry. ; 4/1/96 Make Scsidisk a boot device, and Scsicdrm a system device ; 7/14/97 Added support to distinguish between aic-78xx drivers for ; NT 3.5x and NT 4.0. We display different text messages ; which refer the user to enter different directories for ; the different drivers. ; 11/10/98 Added support for AHA-2930U2 Host Adpater ;----------------------------------------------------------------------- ;----------------------------------------------------------------------- ; OPTION TYPE ; ----------- ; This identifies the Option type we are dealing with. The different ; possible types are: ; ; COMPUTER, VIDEO, POINTER, KEYBOARD, LAYOUT, SCSI, TAPE, PRINTER, ... ;----------------------------------------------------------------------- [Identification] OptionType = SCSI ;----------------------------------------------------------------------- ; LANGUAGES SUPPORTED ; ------------------- ; ; The languages supported by the INF, For every language supported ; we need to have a separate text section for every displayable text ; section. ; ;----------------------------------------------------------------------- [LanguagesSupported] ENG ;----------------------------------------------------------------------- ; OPTION LIST ; ----------- ; This section lists the Option key names. These keys are locale ; independent and used to represent the option in a locale independent ; manner. ; ;----------------------------------------------------------------------- [Options] "sparrow" = sparrow "ARROW" = arrow "T358" = T358 "T348" = T348 "aha2920" = fd16_700 "78xx35" = 78NT35 "78xx40" = 78NT40 "78U235" = 78U235 "78U240" = 78U240 "aha154x" = aha154x "aha174x" = aha174x ;"2930U235" = 2930U235 "2930U240" = 2930U240 ;----------------------------------------------------------------------- ; OPTION TEXT SECTION ; ------------------- ; These are text strings used to identify the option to the user. There ; are separate sections for each language supported. The format of the ; section name is "OptionsText" concatenated with the Language represented ; by the section. ; ;----------------------------------------------------------------------- [OptionsTextENG] "sparrow" = "Adaptec 151x/152x/AIC 6260/6360, APA-1425/50/60" "ARROW" = "Adaptec 274x/284x/AIC-777x" "T358" = "Adaptec APA-358 MiniSCSI EPP Driver" "T348" = "Adaptec APA-348 MiniSCSI Plus Driver" "aha2920" = "Adaptec AHA-2920 (PCI)" "78xx35" = "Adaptec PCI SCSI Controller: AHA-290x/AHA-291x/AHA-294x/AHA-394x/AHA-4944 or AIC-78xx(NT 3.51)" "78xx40" = "Adaptec PCI SCSI Controller: AHA-290x/AHA-291x/AHA-294x/AHA-394x/AHA-4944 or AIC-78xx(NT 4.0)" "78U235" = "Adaptec PCI Ultra2 SCSI Controller: AHA-294xU2W/295xU2W/395xU2W/AIC-789x(NT 3.5x)" "78U240" = "Adaptec PCI Ultra2 SCSI Controller: AHA-294xU2W/295xU2W/395xU2W/AIC-789x(NT 4.0)" "aha154x" = "Adaptec AHA-154x/AHA-164x" "aha174x" = "Adaptec AHA-174x" ;"2930U235" = "Adaptec AHA-2930U2 PCI SCSI Controller (NT 3.5x)" "2930U240" = "Adaptec AHA-2930U2 PCI SCSI Controller (NT 4.0)" ;----------------------------------------------------------------------------------------- ; SCSI MINIPORT DRIVERS: ; ; Order of the information: ; ; Class driver = Type, Group, ErrorControl, Tag, EventMessageFile, TypesSupported ; ;----------------------------------------------------------------------------------------- [MiniportDrivers] sparrow = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 1, %SystemRoot%\System32\IoLogMsg.dll , 7 arrow = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 2, %SystemRoot%\System32\IoLogMsg.dll , 7 T358 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 3, %SystemRoot%\System32\IoLogMsg.dll , 7 T348 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 4, %SystemRoot%\System32\IoLogMsg.dll , 7 fd16_700 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 5, %SystemRoot%\System32\IoLogMsg.dll , 7 78NT35 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 6, %SystemRoot%\System32\IoLogMsg.dll , 7 78NT40 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 7, %SystemRoot%\System32\IoLogMsg.dll , 7 78U235 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 17, %SystemRoot%\System32\IoLogMsg.dll , 7 78U240 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 20, %SystemRoot%\System32\IoLogMsg.dll , 7 aha154x = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 8, %SystemRoot%\System32\IoLogMsg.dll , 7 aha174x = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 9, %SystemRoot%\System32\IoLogMsg.dll , 7 ;2930U235 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 20, %SystemRoot%\System32\IoLogMsg.dll , 7 2930U240 = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL, 20, %SystemRoot%\System32\IoLogMsg.dll , 7 [AdaptecInstall] ; = REGISTRY_KEY 78NT40 = aic78xx 78NT35 = aic78xx 78U240 = aic78u2 78U235 = aic78u2 2930U240 = 2930u2 ;2930U235 = 2930u2 ;--------------------------------------------------------------------------- ; 1. Identify ; ; DESCRIPTION: To verify that this INF deals with the same type of options ; as we are choosing currently. ; ; INPUT: None ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL ; $($R1): Option Type (COMPUTER ...) ; $($R2): Diskette description ;--------------------------------------------------------------------------- [Identify] ; ; read-syms Identification ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "Inside Identify" set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) ;------------------------------------------------------------------------ ; 2. ReturnOptions: ; ; DESCRIPTION: To return the option list supported by this INF and the ; localised text list representing the options. ; ; ; INPUT: $($0): Language used. ( ENG | FRN | ... ) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE ; STATUS_FAILED ; ; $($R1): Option List ; $($R2): Option Text List ;------------------------------------------------------------------------ [ReturnOptions] ; ; set Status = STATUS_FAILED set OptionList = {} set OptionTextList = {} ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) goto returnoptions else set Status = STATUS_NOLANGUAGE goto finish_ReturnOptions endif ; ; form a list of all the options and another of the text representing ; returnoptions = + set OptionList = ^(Options, 0) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL finish_ReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) ; ; 3. InstallOption: ; ; FUNCTION: To copy files representing Options ; To configure the installed option ; To update the registry for the installed option ; ; INPUT: $($0): Language to use ; $($1): OptionID to install ; $($2): SourceDirectory ; $($3): AddCopy (YES | NO) ; $($4): DoCopy (YES | NO) ; $($5): DoConfig (YES | NO) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE | ; STATUS_USERCANCEL | ; STATUS_FAILED ; [InstallOption] ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "Inside InstallOption" ;=========================================================================== ;registry changes for APA-1460 PCMCIA support under NT3.51 (JSG - 9/4/95) set KeyName = "System\CurrentControlSet\Services\Pcmcia\DataBase" OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) PcmciaKeyHandle ifstr(i) $(PcmciaKeyHandle) != "" OpenRegKey $(!REG_H_LOCAL) "" $(KeyName)"\Adaptec, Inc." $(!REG_KEY_ALL_ACCESS) TestKeyHandle ifstr(i) $(TestKeyHandle) == "" CreateRegKey $(PcmciaKeyHandle) {"Adaptec, Inc.",0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" AdptKeyHandle CreateRegKey $(AdptKeyHandle) {"APA-1460 SCSI Host Adapter",0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" APAKeyHandle SetRegValue $(APAKeyHandle) {Driver,0,$(!REG_VT_SZ),"sparrow"} CloseRegKey $(APAKeyHandle) CloseRegKey $(AdptKeyHandle) endif CloseRegKey $(TestKeyHandle) endif CloseRegKey $(PcmciaKeyHandle) ;end of PCMCIA Database registry changes ;=========================================================================== ;=========================================================================== ;Make Scsidisk a boot device if currently set to disabled. (JSG - 9/18/95) set KeyName = "System\CurrentControlSet\Services\Scsidisk" OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) ScsidiskKeyHandle ifstr(i) $(ScsidiskKeyHandle) != "" GetRegValue $(ScsidiskKeyHandle) Start StartInfo ifint *($(StartInfo),4) == 4 SetRegValue $(ScsidiskKeyHandle) {Start,0,$(!REG_VT_DWORD),0} endif endif CloseRegKey $(ScsidiskKeyHandle) ;end of ScsiDisk registry changes ;=========================================================================== ;=========================================================================== ;Make Scsicdrm a system device if currently set to disabled. (JSG - 4/1/95) set KeyName = "System\CurrentControlSet\Services\Scsicdrm" OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) ScsicdrmKeyHandle ifstr(i) $(ScsicdrmKeyHandle) != "" GetRegValue $(ScsicdrmKeyHandle) Start StartInfo ifint *($(StartInfo),4) == 4 SetRegValue $(ScsicdrmKeyHandle) {Start,0,$(!REG_VT_DWORD),1} endif endif CloseRegKey $(ScsicdrmKeyHandle) ;end of Scsicdrm registry changes ;=========================================================================== ; ; Set default values for ; set Status = STATUS_FAILED set DrivesToFree = {} ; ; extract parameters ; set Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "About to check Language Support" ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) else set Status = STATUS_NOLANGUAGE goto finish_InstallOption endif read-syms Strings$($0) ; ; check to see if Option is supported. ; set OptionList = ^(Options, 0) ifcontains $(Option) in $(OptionList) else Debug-Output "SCSI.INF: SCSI option is not supported." goto finish_InstallOption endif set OptionList = "" ; ; Option has been defined already ; set MiniportDriver = #(Options, $(Option), 1) ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "MiniportDriver In set" ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS $(MiniportDriver) set Type = $(#(MiniportDrivers, $(MiniportDriver), 1)) set Group = #(MiniportDrivers, $(MiniportDriver), 2) set ErrorControl = $(#(MiniportDrivers, $(MiniportDriver), 3)) set Tag = #(MiniportDrivers, $(MiniportDriver), 4) set EventMessageFile = #(MiniportDrivers, $(MiniportDriver), 5) set TypesSupported = #(MiniportDrivers, $(MiniportDriver), 6) set Start = $(!SERVICE_BOOT_START) ;=========================================================================== ;=========================================================================== ;=========================================================================== ; ; MHG: 1/26/98 ; ; This ifstr(i) statement was added because this OEMSETUP.INF file ; was failing whenever we attempted to install a non-AIC78XX host ; adapter. We added this section dated 12/5/97 to provide support ; for our Ultra2 PCI host adapters and got it from their group, but ; it produces an error when any other non-AIC78XX host adapter is used. ; ; To work around this problem, we now check to see if the U2 board ; has been selected to install. If it has, we do the MemMapped I/O ; support registry entry addition. ; ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "About to start first check section" ifstr(i) $(Option) == "78U240" ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "Doing new MemMapped Stuff" ; MHG: This was added for Memory Mapped I/O support for the Ultra2 Series ; 12/5/97 ; ; Registry update set SNode = #(AdaptecInstall, $(MiniportDriver), 1) set KeyName = "System\CurrentControlSet\Services\"$(SNode) OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) AdptKeyHandle ifstr(i) $(AdptKeyHandle) != "" OpenRegKey $(!REG_H_LOCAL) "" $(KeyName)"Parameters\Device" $(!REG_KEY_ALL_ACCESS) TestKeyHandle ifstr(i) $(TestKeyHandle) == "" CreateRegKey $(AdptKeyHandle) {"Parameters",0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" ParamKeyHandle CreateRegKey $(ParamKeyHandle) {"Device",0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" DevKeyHandle SetRegValue $(DevKeyHandle) {DriverParameters,0,$(!REG_VT_SZ),"/MEMMAP"} CloseRegKey $(DevKeyHandle) CloseRegKey $(ParamKeyHandle) endif CloseRegKey $(TestKeyHandle) endif CloseRegKey $(AdptKeyHandle) ; ;end Registry Update from 12/5/97 ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "Done with MemMapped Stuff" else-ifstr(i) $(Option) == "78U235" ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "Checking ==78u235" set SNode = #(AdaptecInstall, $(MiniportDriver), 1) set KeyName = "System\CurrentControlSet\Services\"$(SNode) OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) AdptKeyHandle ifstr(i) $(AdptKeyHandle) != "" OpenRegKey $(!REG_H_LOCAL) "" $(KeyName)"Parameters\Device" $(!REG_KEY_ALL_ACCESS) TestKeyHandle ifstr(i) $(TestKeyHandle) == "" CreateRegKey $(AdptKeyHandle) {"Parameters",0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" ParamKeyHandle CreateRegKey $(ParamKeyHandle) {"Device",0,GenericClass} "" $(!REG_KEY_ALL_ACCESS) "" DevKeyHandle SetRegValue $(DevKeyHandle) {DriverParameters,0,$(!REG_VT_SZ),"/MEMMAP"} CloseRegKey $(DevKeyHandle) CloseRegKey $(ParamKeyHandle) endif CloseRegKey $(TestKeyHandle) ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "Shouldn't see this 1" endif CloseRegKey $(AdptKeyHandle) ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "Shouldn't see this 2" ; ;end Registry Update from 12/5/97 ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "Shouldn't see this 3" ; ; End 1/26/98 Changes ; endif ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "Ready To Move On" ;=========================================================================== ; ; MHG : The next 8 lines added for the 358 and 348 ; ; shell "registry.inf" GetServicesEntryStart $(MiniportDriver) ; ifint $($ShellCode) == $(!SHELL_CODE_OK) ; ifstr(i) $($R0) == "STATUS_SUCCESSFUL" ; ifstr(i) $($R1) == $(!SERVICE_BOOT_START) ; set Start = $(!SERVICE_BOOT_START) ; endif ; endif ; endif ; ; MHG : End of special insert for 358 and 348 ; installtheoption = + ; ; Code to add files to copy list ; ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "About to copy files to copy list" ifstr(i) $(AddCopy) == "YES" set DoActualCopy = NO set FileToCheck = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES endif ifstr(i) $(DoActualCopy) == NO shell "subroutn.inf" DriversExist $($0) $(String1) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "SCSI.INF: shelling DriversExist failed" goto finish_InstallOption endif ifstr(i) $($R0) == STATUS_CURRENT else-ifstr(i) $($R0) == STATUS_NEW set DoActualCopy = YES else-ifstr(i) $($R0) == STATUS_USERCANCEL Debug-Output "SCSI.INF: User cancelled SCSI installation" goto finish_InstallOption else Debug-Output "SCSI.INF: Error reported in DriversExist routine in SUBROUTN.INF" goto finish_InstallOption endif endif ifstr(i) $(DoActualCopy) == YES ; ; MHG 7/11/97: Added this section to display text in the dialog box ; which asks the user to type in the directory path ; for the miniport driver. If the user selected to install ; the aic78xx miniport, we display one string, otherwise ; we display another generic string. ; ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "About to Ask for path" ; ; We first check for the WinNT 4.0 version of our PCI driver being ; loaded. If the 4.0 driver is selected, display 4.0 text message. ; ifstr(i) $(Option) == "78xx40" shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String4) goto PathObtained ; ; Since 4.0 driver not selected, check for 3.51 driver for PCI and ; display message. ; else-ifstr(i) $(Option) == "78xx35" shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String5) goto PathObtained ; else ; ; ; ; If we get here, we can assume the user has selected a driver ; ; other than our aic78xx based series. Display a generic message ; ; ; shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2) ; endif endif ; ; End of MHG 7/11/97 changes ; ; ;Ting 11/10/98: Check for 2930U240 installation only ; ifstr(i) $(Option) == "2930U240" shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String8) goto PathObtained ; ; If 4.0 driver not selected, check for the 3.5x driver for the ; AHA 2930U2 PCI SCSI Host Adapter and display proper message. ; ; Ting 11/18/98 ;else-ifstr(i) $(Option) == "2930U235" ; shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String9) ; goto PathObtained ; ; ; endif endif ; ; MHG 9/30/97: Now we check to see if the user is installing the ; Ultra2 PCI SCSI Host Adapter. ; ifstr(i) $(Option) == "78U240" shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String6) goto PathObtained ; ; If 4.0 driver not selected, check for the 3.51 driver for the ; Ultra2 PCI SCSI Host Adapter and display proper message. ; else-ifstr(i) $(Option) == "78U235" shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String7) goto PathObtained else ; ; If we get here, we can assume the user has selected a driver ; other than our aic78xx based series. Display a generic message ; shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2) endif endif ; ; End of MHG 9/30/97 Changes for Ultra2 Support. ; PathObtained = + ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "SCSI.INF: shelling DoAskSourceEx failed" goto finish_InstallOption endif ifstr(i) $($R0) == STATUS_SUCCESSFUL set SrcDir = $($R1) ifstr(i) $($R2) != "" set DrivesToFree = >($(DrivesToFree), $($R2)) endif else Debug-Output "SCSI.INF: User cancelled asking source." goto finish_InstallOption endif install Install-AddCopyOption ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS" Debug-Output "Adding SCSI files to copy list failed" goto finish_InstallOption endif else set DoCopy = NO endif endif ifstr(i) $(DoCopy) == "YES" read-syms ProgressCopy$($0) install Install-DoCopyOption ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE" Debug-Output "Copying files failed" goto finish_InstallOption else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT" set Status = STATUS_USERCANCEL goto finish_InstallOption endif endif ifstr(i) $(DoConfig) == "YES" ; ; first run a privilege check on modifying the setup node ; shell "registry.inf" CheckSetupModify ifint $($ShellCode) != $(!SHELL_CODE_OK) goto finish_InstallOption endif ifstr(i) $($R0) != STATUS_SUCCESSFUL goto finish_InstallOption endif ; ; then make a new SCSI entry, the entry is created automatically ; enabled ; ; ; MHG : Here we are trying to differentiate between PCI and non-PCI ; miniport installation. If we are installing PCI we need to ; set the ServiceNode by using the AdaptecInstall, otherwise ; we can assume that the MiniportDriver value is already correct. ; This must actually be done is a couple placed but we will try it ; here first. ; ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "About value of MiniportDriver" ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS $(MiniportDriver) ifstr(i) $(MiniportDriver) == "aic78xx" set ServiceNode = #(AdaptecInstall,$(MiniportDriver),1) ; ; MHG 9/30/97: Add Ultra2 Check ; else-ifstr(i) $(MiniportDriver) == "aic78u2" set ServiceNode = #(AdaptecInstall,$(MiniportDriver),1) ; ;Ting 11/11/98: Add check for 2930U240 ; else-ifstr(i) $(MiniportDriver) == "2930U240" set ServiceNode = #(AdaptecInstall,$(MiniportDriver),1) ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS "in2930u240" ;shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) STATUS $(ServiceNode) ;else-ifstr(i) $(MiniportDriver) == "2930U235" ; set ServiceNode = #(AdaptecInstall,$(MiniportDriver),1) else set ServiceNode = $(MiniportDriver) endif set ServiceBinary = System32\drivers\#(Files-ScsiMiniportDrivers, $(MiniportDriver), 2) set ServicesValues = { + {Type, 0, $(!REG_VT_DWORD), $(Type) }, + {Start, 0, $(!REG_VT_DWORD), $(Start) }, + {Group, 0, $(!REG_VT_SZ), $(Group) }, + {ErrorControl, 0, $(!REG_VT_DWORD), $(ErrorControl) }, + {Tag, 0, $(!REG_VT_DWORD), $(Tag) }, + {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary) } + } set ParametersValues = "" set DeviceValues = {} set EventLogValues = { + {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, + {TypesSupported, 0, $(!REG_VT_DWORD), $(TypesSupported) } + } ; ; MHG 7/14/97: Here we need to see if we are installing an aic78xx ; family of PCI host adapter. If we are, we need to ; install the server with the name ADAPTEC instead ; of aic78xx or any other cryptic value. ; ifstr(i) $(Option) == "78xx40" set ServiceNode = #(AdaptecInstall,$(MiniportDriver),1) goto Add78xxServiceEntry else-ifstr(i) $(Option) == "78xx35" set ServiceNode = #(AdaptecInstall,$(MiniportDriver),1) goto Add78xxServiceEntry endif endif ; ; MHG 9/30/97: Now let's see if we need to install the Ultra2 ; version for the user. ; ifstr(i) $(Option) == "78U240" set ServiceNode = #(AdaptecInstall,$(MiniportDriver),1) goto Add78xxServiceEntry else-ifstr(i) $(Option) == "78U235" set ServiceNode = #(AdaptecInstall,$(MiniportDriver),1) goto Add78xxServiceEntry endif endif ; ; Looks like we are not installing one of the aic78xx family memebers. ; Now we can add the service entry with the normal host adapter ; miniport driver name. ; shell "registry.inf" MakeServicesEntry $(ServiceNode) + $(ServicesValues) + $(ParametersValues) + $(DeviceValues) + $(EventLogValues) + Parameters goto DoneWithServiceEntry ; ; We jump here if we are installing the aic78xx family ; Add78xxServiceEntry = + ;set ServiceNode = "ADAPTEC" shell "registry.inf" MakeServicesEntry $(ServiceNode) + $(ServicesValues) + $(ParametersValues) + $(DeviceValues) + $(EventLogValues) + Parameters ; ; Done with service entry stuff. ; DoneWithServiceEntry = + ; ; End MHG changes 7/14/97 ; ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Couldn't execute MakeServicesEntry in registry.inf" goto finish_InstallOption endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "MakeServicesEntry failed for SCSI" goto finish_InstallOption endif endif set Status = STATUS_SUCCESSFUL finish_InstallOption = + ForListDo $(DrivesToFree) LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE" EndForListDo Return $(Status) [Install-AddCopyOption] ; ; Add the files to the copy list ; AddSectionKeyFileToCopyList Files-ScsiMiniportDrivers + $(MiniportDriver) + $(SrcDir) + $(!STF_WINDOWSSYSPATH)\drivers exit [Install-DoCopyOption] ; ; Copy files in the copy list ; CopyFilesInCopyList exit ;------------------------------------------------------------------------- ; 4. DeInstallOption: ; ; FUNCTION: To remove files representing Option ; To remove the registry entry corresponding to the Option ; ; INPUT: $($0): Language to use ; $($1): OptionID to install ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE | ; STATUS_USERCANCEL | ; STATUS_FAILED ;------------------------------------------------------------------------- [DeInstallOption] ;=========================================================================== ;to remove registry changes for APA-1460 PCMCIA support under NT3.51 (JSG - 9/4/95) set KeyName = "System\CurrentControlSet\Services\Pcmcia\DataBase" OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_ALL_ACCESS) PcmciaKeyHandle OpenRegKey $(!REG_H_LOCAL) "" $(KeyName)"\Adaptec, Inc." $(!REG_KEY_ALL_ACCESS) TestKeyHandle ifstr(i) $(TestKeyHandle) != "" DeleteRegTree $(PcmciaKeyHandle) "Adaptec, Inc." endif CloseRegKey $(TestKeyHandle) CloseRegKey $(PcmciaKeyHandle) ;end of PCMCIA Database registry changes ;=========================================================================== ; ; Set default values for ; set Status = STATUS_FAILED ; ; extract parameters ; set Option = $($1) ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) else set Status = STATUS_NOLANGUAGE goto finish_DeInstallOption endif read-syms Strings$($0) ; ; check to see if Option is supported. ; set OptionList = ^(Options, 0) ifcontains $(Option) in $(OptionList) else goto finish_DeInstallOption endif set OptionList = "" ; ; fetch details about option ; set MiniportDriver = #(Options, $(Option), 1) set MiniportFile = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2) set FilePath = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile) ; ; check to see if file is installed ; if not give success ; LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath) ifstr(i) $(STATUS) == "NO" set Status = STATUS_SUCCESSFUL goto finish_DeInstallOption endif shell "registry.inf" GetServicesEntryStart $(MiniportDriver) ifstr(i) $($R0) != "STATUS_SUCCESSFUL" ; this could happen if there is no start value or there is no ; key, in which case the option is not installed set Status = STATUS_SUCCESSFUL goto finish_DeInstallOption endif ifstr(i) $($R1) == $(!SERVICE_BOOT_START) shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(String3) ifstr(i) $($R0) != STATUS_SUCCESSFUL goto do_removal endif ifstr(i) $($R1) == "CANCEL" goto finish_DeInstallOption endif endif do_removal =+ ; ; disable the registry entry ; shell "registry.inf" RemoveServicesEntry $(MiniportDriver) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry" goto finish_DeInstallOption endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "SCSI.INF: Failed to disable services entry" goto finish_DeInstallOption endif ; ; we won't remove the file because we can only do so during the next boot. ; if the user chooses to reinstall the same driver during this boot ; he will still end up deleting the driver on next boot. if the file ; should be deleted a warning should be put up saying that the user should ; not try to reinstall the driver during this boot ; ; AddFileToDeleteList $(FilePath) set Status = STATUS_SUCCESSFUL finish_DeInstallOption =+ return $(Status) ;------------------------------------------------------------------------- ; 5. GetInstalledOptions: ; ; FUNCTION: To find out the list of options which are installed ; ; INPUT: $($0): Language to Use ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_FAILED ; ; $($R1): List of options installed ; $($R2): Option installed Text List ;------------------------------------------------------------------------- [GetInstalledOptions] set Status = STATUS_FAILED set InstalledOptions = {} set InstalledOptionsText = {} ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) else set Status = STATUS_NOLANGUAGE goto finish_GetInstalledOptions endif set OptionList = ^(Options, 0) ForListDo $(OptionList) set MiniportDriver = #(Options, $($), 1) set MiniportFile = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2) set FilePath = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath) ifstr(i) $(STATUS) == "YES" shell "registry.inf" GetServicesEntryStart $(MiniportDriver) ifint $($ShellCode) == $(!SHELL_CODE_OK) ifstr(i) $($R0) == STATUS_SUCCESSFUL ifstr(i) $($R1) != $(!SERVICE_DISABLED) set OptionText = #(OptionsText$($0), $($), 1) set InstalledOptions = >($(InstalledOptions), $($)) set InstalledOptionsText = >($(InstalledOptionsText), $(OptionText)) endif endif endif endif EndForListDo set Status = STATUS_SUCCESSFUL finish_GetInstalledOptions =+ Return $(Status) $(InstalledOptions) $(InstalledOptionsText) ;************************************************************************** ; PROGRESS GUAGE VARIABLES ;************************************************************************** [ProgressCopyENG] ProCaption = "Windows NT Setup" ProCancel = "Cancel" ProCancelMsg = "Windows NT is not correcly installed. Are you sure you want "+ "to cancel copying files?" ProCancelCap = "Setup Message" ProText1 = "Copying:" ProText2 = "To:" [StringsENG] String1 = "SCSI Adapter" String2 = "Please enter the full path to the OEM SCSI "+ "Adapter files. These files are located in the "+ "root directory on the Adaptec EZ-SCSI Drivers Disk." + "Then choose Continue." String3 = "The SCSI Adapter has been marked as a boot device. Removing "+ "it may cause the system not to boot."$(!LF)$(!LF)"Are you sure "+ "you want to remove the Adapter." ; String4 = "If you are running Windows NT 4.0 please insert the"+ ; "EZ-SCSI Setup Disk into your floppy drive and enter"+ ; "the following path below: \WINNT\4_0. If you are using"+ ; "Windows NT 3.51 please enter this path: \WINNT\3_5." + ; "Then choose Continue." String4 = "You have chosen to install the Windows NT 4.0 miniport driver "+ "for the following Adaptec PCI SCSI Host Adapter family: "$(!LF)$(!LF)+ "AHA-294x/AHA-394x/AHA-4944 or AIC-78xx. "$(!LF)$(!LF)+ "Click Continue to install driver." String5 = "You have chosen to install the following Adaptec PCI SCSI Host Adapter family: "+ "AHA-294x/AHA-394x/AHA-4944 or AIC-78xx. "$(!LF)+ "Enter this path below and click Continue: \3_5" String6 = "You have chosen to install the Windows NT 4.0 miniport driver "+ "for the following Adaptec PCI Ultra2 SCSI Host Adapter family: "$(!LF)$(!LF)+ "AHA-294xU2W/AHA-295xU2W/AIC-7890/91. "$(!LF)$(!LF)+ "Click Continue to install driver." String7 = "You have chosen to install the following Adaptec PCI Ultra2 SCSI Host Adapter family: "+ "AHA-294xU2W/AHA-295xU2W/AIC-7890/91. "$(!LF)+ "Enter this path below and click Continue: \3_5" String8 = "You have chosen to install the Windows NT 4.0 miniport driver for "+ "AHA2930U2"$(!LF)$(!LF)+ "Click Continue to install driver." ; String9 = "You have chosen to install the Windows NT 3.5 miniport driver for "+ ; "AHA2930U2"$(!LF)$(!LF)+ ; "Enter this path below and click Continue: \3_5" [Source Media Descriptions] 1 = "Adaptec SCSI Controller Drivers Disk 1 of 1", TAGFILE = disk1 [Files-ScsiMiniportDrivers] sparrow = 1, sparrow.sys, SIZE=999 arrow = 1, arrow.sys, SIZE=999 T358 = 1, T358.SYS, SIZE=999 T348 = 1, T348.SYS, SIZE=999 78NT35 = 1, aic78xx.sys, SIZE=999 78NT40 = 1, aic78xx.sys, SIZE=999 aha154x = 1, aha154x.sys, SIZE=999 aha174x = 1, aha174x.sys, SIZE=999 fd16_700 = 1, fd16_700.sys, SIZE=999 78U235 = 1, aic78u2.sys, SIZE=999 78U240 = 1, aic78u2.sys, SIZE=999 2930U240 = 1, 2930U2.sys, SIZE=999 ;2930U235 = 1, 2930U2.sys, SIZE=999